第3章 静态分析技术

PEiD看文件类型

IDA基本操作就不赘述了

FLIRT(库文件快速识别与鉴定技术)

目的是为每个可标识的库函数创建一个签名,有利于分析

当无法识别出库函数时,可以尝试强制使用签名文件,菜单View-Open subviews-Signatures,进入窗口后右键-Apply new signature,选中库即可激活,会自动重新分析

手动重新分析:Options-General-Analysis-Reanalyze program

IDAPython

IDC脚本先不管,因为看到很多师傅都是用的IDAPython,所以先学IDAPython

使用方法:File-Script File

BADADDR:无效地址

FirstSeg():获取第一个段的地址

NextSeg():下一个段

SegName():段名,如.text,.idata

SetStart(addr):所在段段头地址

SetEnd(addr):所在段段尾地址

Name(addr):该地址的函数名

NextAddr(addr):相当于addr+1

Byte(addr):获取addr处字节

PatchByte(addr,num):把addr处修改成num

IDAPython解密SMC(实例2):

def main():
    start = 0x401060
    end = 0x401074
    for i in range(start,end+1):
        this = Byte(i)
        #print(hex(this))
        this ^= 1
        PatchByte(i,this)

if __name__ == "__main__":
    print("start py")
    main()

静态分析应用技术实例都是较简单的patch,我用010editor替换掉书上说的Hiew,效果差别不大。同时针对上述SMC解密,可直接用010进行异或解密,步骤:选取要异或的数据,Tools-Hex Operations-Binary Xor,填上异或值即可。